package provider

import (
	"io"

	"gitee.com/Luna-CY/Golang-Project-Template/internal/context"
	"gitee.com/Luna-CY/Golang-Project-Template/internal/errors"
	"gitee.com/Luna-CY/Golang-Project-Template/model"
)

type Attachment struct {
	Filename string
	Reader   io.ReadSeeker
}

type Provider interface {
	// GetName 获取供应商名称
	GetName() string

	// GetFrom 获取发件人
	GetFrom() string

	// Send 发送邮件
	Send(ctx context.Context, from string, to []string, cc []string, bcc []string, subject string, bodyType model.SystemSmtpLogBodyType, body string, attachments []Attachment) errors.Error
}
